:art: get_wxa_code

huangqimin001 2 年之前
父節點
當前提交
1a5de6e1cb
共有 3 個文件被更改,包括 36 次插入1 次删除
  1. 2 1
      api/urls.py
  2. 33 0
      api/wxa_views.py
  3. 1 0
      requirements_pywe.txt

+ 2 - 1
api/urls.py

@@ -5,7 +5,7 @@ from django_file_upload import views as file_views
5 5
 
6 6
 from api import (admin_views, clerk_views, complement_views, distributor_views, encrypt_views, express_views, log_views,
7 7
                  maintenance_point_views, maintenance_views, mch_views, member_views, model_views, operator_views,
8
-                 refresh_views, sr_views, staff_views, wx_views)
8
+                 refresh_views, sr_views, staff_views, wx_views, wxa_views)
9 9
 from miniapp import qy_views
10 10
 from miniapp import views as mini_views
11 11
 from page import oauth_views, sale_views, screen_views
@@ -274,6 +274,7 @@ urlpatterns += [
274 274
 
275 275
 urlpatterns += [
276 276
     url(r'^get_limit_scene_qrcode_url$', wx_views.get_limit_scene_qrcode_url, name='get_limit_scene_qrcode_url'),
277
+    url(r'^get_wxa_code$', wxa_views.get_wxa_code, name='get_wxa_code'),
277 278
 ]
278 279
 
279 280
 urlpatterns += [

+ 33 - 0
api/wxa_views.py

@@ -0,0 +1,33 @@
1
+# -*- coding: utf-8 -*-
2
+
3
+from django.conf import settings
4
+from django_response import response
5
+from pywe_storage import RedisStorage
6
+from pywe_wxa_qrcode import get_wxa_code_unlimit
7
+
8
+from utils.qiniucdn import qiniu_file_url, upload
9
+from utils.redis.connect import r
10
+
11
+
12
+WECHAT = settings.WECHAT
13
+
14
+
15
+def get_wxa_code(request):
16
+    scene = request.POST.get('scene', '')
17
+    page = request.POST.get('page', '')
18
+
19
+    wxcfg = WECHAT.get('MINIAPP', {})
20
+
21
+    appid = wxcfg.get('appID')
22
+    secret = wxcfg.get('appsecret')
23
+
24
+    res = get_wxa_code_unlimit(scene, page, res_to_base64=False, appid=appid, secret=secret, storage=RedisStorage(r))
25
+
26
+    if res.headers and res.headers.get('Content-disposition'):
27
+        qiniu_url = qiniu_file_url(upload(res.content))
28
+    else:
29
+        qiniu_url = ''
30
+
31
+    return response(data={
32
+        'qiniu_url': qiniu_url,
33
+    })

+ 1 - 0
requirements_pywe.txt

@@ -20,4 +20,5 @@ pywe-sign==1.1.0
20 20
 pywe-storage==1.0.1
21 21
 pywe-user==1.0.4
22 22
 pywe-wxa-cv==1.0.0
23
+pywe-wxa-qrcode==1.0.3
23 24
 pywe-xml==1.0.6